#pragma once
#include <fstream>

class Util
{
public:
    Util(){}
    static bool ReadFileContent(std::string& filename,std::string* Content)
    {
        // std::ifstream in(filename);
        // if(!in.is_open())return false;

        // std::string readfile;
        // while(std::getline(in,readfile))
        // {
        //     *Content+=readfile;
        // }
        // in.close();
        // return true;
        int filesize=GetContentLen(filename);
        if(filesize>0)
        {
            std::ifstream in(filename);
            if(!in.is_open())
                return false;
            Content->resize(filesize);
            in.read((char*)Content->c_str(),filesize);
            in.close();
        }
        else
        {
            return false;
        }
        return true;
    }
    static bool ReadOneLineFromFile(std::string& AnalysisString,std::string* out,const std::string& sep)
    {
        auto pos=AnalysisString.find(sep);
        if(pos==std::string::npos)
            return false;
        *out=AnalysisString.substr(0,pos);
        AnalysisString.erase(0,pos+sep.size());
        return true;
    }
    //seekg使用后不设置为begin可以吗？
    static int GetContentLen(std::string& filename)
    {
        std::ifstream in(filename,std::ios::binary);
        if(!in.is_open())
            return -1;
        in.seekg(0,in.end);
        int filesize=in.tellg();
        in.seekg(0,in.beg);
        in.close();
        return filesize;
    }
    ~Util(){}

};

